<?php
/**
 * @package mc
 */
/**
 * @package mc
 */
class ModelSite extends Model {
	
	/**
	 * Retorna o conteúdo da página solicitada
	 * @return array $retorno
	 * @return string $retorno
	 * @return boolean $retorno
	 */
	public function getPagina($pagina="")
	{
		// retorno padrão
		$retorno = array();
		
		// sql para buscar no banco
		$sql = "SELECT p.con_pagi FROM paginas p WHERE p.nom_pagi='$pagina'";

		// executando a query
		$res = $this->Execute($sql);
		if ($this->db->ErrorMsg()) $retorno = $this->db->ErrorMsg();
		elseif($res->RecordCount())
		{
			while (!$res->EOF)
			{
				$retorno = $res->Fields("con_pagi");
				$res->MoveNext();
			}
		} else
		{
			$retorno = false;
		}
		
		// retorno
		return $retorno;
	}
	
	/**
	 * Retorna uma matriz com todos os menus do site
	 * @return array $retorno Matriz com todos os menus e suas propriedades
	 * @return string $retorno Erro do banco de dados
	 */
	public function getMenuPaginas($pagina=0)
	{
		
		// retorno padrão
		$retorno 	= array();
		
		// erro
		$erro		= "";
	
		// sql para buscar menus no banco
		$sql = "SELECT p.* FROM paginas p WHERE p.men_orde>0 ORDER BY p.men_orde";
		$res = $this->Execute($sql);
		if ($this->db->ErrorMsg()) $retorno = $this->db->ErrorMsg();
		elseif($res->RecordCount())
		{
			while (!$res->EOF)
			{
				$retorno[$res->Fields("nom_pagi")] = "?pag=".strtolower($res->Fields("nom_pagi"));
				$res->MoveNext();
			}
		} else $retorno = false;
		
		// retorno 
		return $retorno;
	}
	
	/**
	 * Retorna uma lista de artigos
	 * @param string $tot Quantidade de artigos
	 * @return array $retorno Matriz com a lista de artigos
	 * @return boolean $retorno Falso em caso de falha
	 */
	public function getArtigos($tot=10)
	{
		$retorno = array();
		
		$sql = "SELECT id, tit_arti, dat_cadt, con_arti, dat_ult_altr, usuarios_id FROM artigos ";
		$res = $this->Execute($sql,array($tot,0));
		if ($this->db->ErrorMsg()) $retorno = false;
		elseif($res->RecordCount())
		{
			while (!$res->EOF)
			{
				$retorno[$res->Fields("id")]["titulo"] 		= $res->Fields("tit_arti");
				$retorno[$res->Fields("id")]["data"] 		= $res->Fields("dat_cadt");
				$retorno[$res->Fields("id")]["conteudo"]	= $res->Fields("con_arti");
				$retorno[$res->Fields("id")]["ateracao"]	= $res->Fields("dat_ult_altr");
				$retorno[$res->Fields("id")]["usuario"]		= $res->Fields("usuarios_id");
				$res->MoveNext();
			}
		} else $retorno = false;
		return $retorno;
	}
	
	/**
	 * Retorna o resultado de uma pesquisa em todas as páginas do site
	 * @param $texto string Texto de pesuisa
	 * @return array $retorno Matriz com os resultados
	 * @return string $erro Mensagen de erro
	 */
	public function getPesquisa($texto="")
	{
		// sql para busca no banco
		$sql = "SELECT p.nom_pagi, p.con_pagi FROM paginas p WHERE p.con_pagi LIKE '%$texto%'";

		// executando a query e retornando erro ou o resultado
		$res = $this->Execute($sql);
		if ($this->db->ErrorMsg()) $retorno = $this->db->ErrorMsg();
		elseif($res->RecordCount())
		{
			$l = 0;
			while (!$res->EOF)
			{
				$retorno[$l]["local"]		= "Páginas";
				$retorno[$l]["nome"] 		= $res->Fields("nom_pagi");
				$retorno[$l]["conteudo"]  	= $res->Fields("con_pagi");
				$res->MoveNext();
				$l++;
			}
		} else $retorno = false;
		
		// retorno
		return $retorno;
	}
	
	/**
	 * Configura o resultado do modelo com os dados do usuário
	 * @param string $login login do usuário
	 * @param string $senha senha do usuário cripotografada com md5
	 * @return array $retorno
	 * @return boolean $retorno
	 */
	public function getAutenticacao($login="", $senha="")
	{
		// retorno padrão
		$retorno = array();
		
		// número de acessos
		$acessos = 0;
		
		// sql
		$sql = "SELECT log_usua, ult_aces, niv_usua, num_aces FROM usuarios WHERE log_usua='$login' AND sen_usua='$senha'";

		// executando
		$res = $this->Execute($sql);
		if ($this->db->ErrorMsg()) $retorno = false;
		elseif($res->RecordCount())
		{
			$l = 0;
			while (!$res->EOF)
			{
				$retorno["login"]		= $res->Fields("log_usua");
				$retorno["ultimo"] 		= $res->Fields("ult_aces");
				$retorno["nivel"]  		= $res->Fields("niv_usua");
				$retorno["acessos"]		= $res->Fields("num_aces");
				$res->MoveNext();
				$l++;
			}
			// atualizando o número de acessos
			$acessos = $retorno["acessos"];
			$acessos++;
			$sql = "update usuarios set num_aces=$acessos,ult_aces=now() WHERE log_usua='$login' AND sen_usua='$senha'";
			$this->Execute($sql);
		} else $retorno = false;
		

		// retorno
		return $retorno;

	}
	
	/**
	 * Atualiza o último acesso do usuário
	 */
	public function setOnline($login="")
	{
		$this->Execute("update usuarios set ult_aces=now() WHERE log_usua='$login' limit 1");
	}
}
